home *** CD-ROM | disk | FTP | other *** search
-
-
-
- FFFFiiiilllleeee::::::::BBBBaaaasssseeeennnnaaaammmmeeee((((3333))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))FFFFiiiilllleeee::::::::BBBBaaaasssseeeennnnaaaammmmeeee((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- fileparse - split a pathname into pieces
-
- basename - extract just the filename from a path
-
- dirname - extract just the directory from a path
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- use File::Basename;
-
- ($name,$path,$suffix) = fileparse($fullname,@suffixlist)
- fileparse_set_fstype($os_string);
- $basename = basename($fullname,@suffixlist);
- $dirname = dirname($fullname);
-
- ($name,$path,$suffix) = fileparse("lib/File/Basename.pm","\.pm");
- fileparse_set_fstype("VMS");
- $basename = basename("lib/File/Basename.pm",".pm");
- $dirname = dirname("lib/File/Basename.pm");
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- These routines allow you to parse file specifications into
- useful pieces using the syntax of different operating
- systems.
-
- fileparse_set_fstype
- You select the syntax via the routine
- _f_i_l_e_p_a_r_s_e__s_e_t__f_s_t_y_p_e().
-
- If the argument passed to it contains one of the
- substrings "VMS", "MSDOS", "MacOS", "AmigaOS" or
- "MSWin32", the file specification syntax of that
- operating system is used in future calls to _f_i_l_e_p_a_r_s_e(),
- _b_a_s_e_n_a_m_e(), and _d_i_r_n_a_m_e(). If it contains none of these
- substrings, UNIX syntax is used. This pattern matching
- is case-insensitive. If you've selected VMS syntax, and
- the file specification you pass to one of these routines
- contains a "/", they assume you are using UNIX emulation
- and apply the UNIX syntax rules instead, for that
- function call only.
-
- If the argument passed to it contains one of the
- substrings "VMS", "MSDOS", "MacOS", "AmigaOS", "os2",
- "MSWin32" or "RISCOS", then the pattern matching for
- suffix removal is performed without regard for case,
- since those systems are not case-sensitive when opening
- existing files (though some of them preserve case on
- file creation).
-
- If you haven't called _f_i_l_e_p_a_r_s_e__s_e_t__f_s_t_y_p_e(), the syntax
- is chosen by examining the builtin variable $^O
-
-
-
- Page 1 (printed 10/23/98)
-
-
-
-
-
-
- FFFFiiiilllleeee::::::::BBBBaaaasssseeeennnnaaaammmmeeee((((3333))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))FFFFiiiilllleeee::::::::BBBBaaaasssseeeennnnaaaammmmeeee((((3333))))
-
-
-
- according to these rules.
-
- fileparse
- The _f_i_l_e_p_a_r_s_e() routine divides a file specification
- into three parts: a leading ppppaaaatttthhhh, a file nnnnaaaammmmeeee, and a
- ssssuuuuffffffffiiiixxxx. The ppppaaaatttthhhh contains everything up to and
- including the last directory separator in the input file
- specification. The remainder of the input file
- specification is then divided into nnnnaaaammmmeeee and ssssuuuuffffffffiiiixxxx based
- on the optional patterns you specify in @suffixlist.
- Each element of this list is interpreted as a regular
- expression, and is matched against the end of nnnnaaaammmmeeee. If
- this succeeds, the matching portion of nnnnaaaammmmeeee is removed
- and prepended to ssssuuuuffffffffiiiixxxx. By proper use of @suffixlist,
- you can remove file types or versions for examination.
-
- You are guaranteed that if you concatenate ppppaaaatttthhhh, nnnnaaaammmmeeee,
- and ssssuuuuffffffffiiiixxxx together in that order, the result will
- denote the same file as the input file specification.
-
- EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
- Using UNIX file syntax:
-
- ($base,$path,$type) = fileparse('/virgil/aeneid/draft.book7',
- '\.book\d+');
-
- would yield
-
- $base eq 'draft'
- $path eq '/virgil/aeneid/',
- $type eq '.book7'
-
- Similarly, using VMS syntax:
-
- ($name,$dir,$type) = fileparse('Doc_Root:[Help]Rhetoric.Rnh',
- '\..*');
-
- would yield
-
- $name eq 'Rhetoric'
- $dir eq 'Doc_Root:[Help]'
- $type eq '.Rnh'
-
-
- basename
- The _b_a_s_e_n_a_m_e() routine returns the first element of the
- list produced by calling _f_i_l_e_p_a_r_s_e() with the same
- arguments, except that it always quotes metacharacters
- in the given suffixes. It is provided for programmer
- compatibility with the UNIX shell command _b_a_s_e_n_a_m_e(1).
-
-
-
-
-
- Page 2 (printed 10/23/98)
-
-
-
-
-
-
- FFFFiiiilllleeee::::::::BBBBaaaasssseeeennnnaaaammmmeeee((((3333))))22223333////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))FFFFiiiilllleeee::::::::BBBBaaaasssseeeennnnaaaammmmeeee((((3333))))
-
-
-
- dirname
- The _d_i_r_n_a_m_e() routine returns the directory portion of
- the input file specification. When using VMS or MacOS
- syntax, this is identical to the second element of the
- list produced by calling _f_i_l_e_p_a_r_s_e() with the same
- input file specification. (Under VMS, if there is no
- directory information in the input file specification,
- then the current default device and directory are
- returned.) When using UNIX or MSDOS syntax, the return
- value conforms to the behavior of the UNIX shell
- command _d_i_r_n_a_m_e(1). This is usually the same as the
- behavior of _f_i_l_e_p_a_r_s_e(), but differs in some cases.
- For example, for the input file specification _l_i_b/,
- _f_i_l_e_p_a_r_s_e() considers the directory name to be _l_i_b/,
- while _d_i_r_n_a_m_e() considers the directory name to be .).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 3 (printed 10/23/98)
-
-
-
-